﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using acessaDB;
using Frame;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using Estrutura;


namespace Banco
{

    /// <summary>
    /// Summary description for BD_Pessoa_contato
    /// </summary>
    public class BD_Pessoa_contato
    {
        #region variaveis_globais

        acessaDB.conectaDBMSSQLServer sqlServer = new conectaDBMSSQLServer();
        string conectionString = System.Configuration.ConfigurationManager.AppSettings["SQLServerConnectionLocal"];
        string usuario = string.Empty;

        #endregion

        #region construtor

        public BD_Pessoa_contato()
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["SQLServerConnectionProd"];
        }
        public BD_Pessoa_contato(string usu_Login)
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["SQLServerConnectionProd"];
            usuario = usu_Login;
        }

        #endregion

        #region metodos

        public System.Data.DataSet _retorna_Pessoa_contato(
                                                string PESSOA_CONTATO_ID,
                                                string PESSOA_ID,
                                                string PSC_TELEFONE_TIPO,
                                                string PSC_TELEFONE
                                                )
        {

            if (string.IsNullOrEmpty(PESSOA_CONTATO_ID)) PESSOA_CONTATO_ID = "''";
            if (string.IsNullOrEmpty(PESSOA_ID)) PESSOA_ID = "''";
            if (string.IsNullOrEmpty(PSC_TELEFONE_TIPO)) PSC_TELEFONE_TIPO = "''";
            if (string.IsNullOrEmpty(PSC_TELEFONE)) PSC_TELEFONE = "''";

            string sql = "SELECT " +
                                  "PESSOA_CONTATO.PESSOA_CONTATO_ID, " +
                                  "PESSOA_CONTATO.PESSOA_ID, " +
                                  "PESSOA_CONTATO.PSC_TELEFONE_TIPO, " +
                                  "PESSOA_CONTATO.PSC_TELEFONE " +
                            "FROM PESSOA_CONTATO " +
                            "LEFT JOIN PESSOA ON PESSOA.PESSOA_ID = PESSOA_CONTATO.PESSOA_ID " +
                            "WHERE " +
                            "      (PESSOA_CONTATO.PESSOA_CONTATO_ID = " + PESSOA_CONTATO_ID + "  OR " + PESSOA_CONTATO_ID + " = '') AND " +
                            "      (PESSOA_CONTATO.PESSOA_ID = " + PESSOA_ID + "  OR " + PESSOA_ID + " = '') AND " +
                            "      (PESSOA_CONTATO.PSC_TELEFONE_TIPO = " + PSC_TELEFONE_TIPO + "  OR " + PSC_TELEFONE_TIPO + " = '') AND " +
                            "      (PESSOA_CONTATO.PSC_TELEFONE = " + PSC_TELEFONE + "  OR " + PSC_TELEFONE + " = '') ";

            return sqlServer.retornaDataSet(sql, conectionString);;
            

        }


        public List<ES_Pessoa_contato> _obter_Pessoa_contato(
                                                string PESSOA_CONTATO_ID,
                                                string PESSOA_ID,
                                                string PSC_TELEFONE_TIPO,
                                                string PSC_TELEFONE
                                                )
        {

            if (string.IsNullOrEmpty(PESSOA_CONTATO_ID)) PESSOA_CONTATO_ID = "''"; else PESSOA_CONTATO_ID = Util.retonarAspas(PESSOA_CONTATO_ID + " % ");
            if (string.IsNullOrEmpty(PESSOA_ID)) PESSOA_ID = "''"; else PESSOA_ID = Util.retonarAspas(PESSOA_ID + " % ");
            if (string.IsNullOrEmpty(PSC_TELEFONE_TIPO)) PSC_TELEFONE_TIPO = "''"; else PSC_TELEFONE_TIPO = Util.retonarAspas(PSC_TELEFONE_TIPO + " % ");
            if (string.IsNullOrEmpty(PSC_TELEFONE)) PSC_TELEFONE = "''"; else PSC_TELEFONE = Util.retonarAspas(PSC_TELEFONE + " % ");

            string sql = "SELECT " +
                                  "PESSOA_CONTATO.PESSOA_CONTATO_ID, " +
                                  "PESSOA_CONTATO.PESSOA_ID, " +
                                  "PESSOA_CONTATO.PSC_TELEFONE_TIPO, " +
                                  "PESSOA_CONTATO.PSC_TELEFONE " +
                            "FROM PESSOA_CONTATO " +
                            "LEFT JOIN PESSOA ON PESSOA.PESSOA_ID = PESSOA_CONTATO.PESSOA_ID " +
                            "WHERE " +
                            "      (PESSOA_CONTATO.PESSOA_CONTATO_ID = " + PESSOA_CONTATO_ID + "  OR " + PESSOA_CONTATO_ID + " = '') AND " +
                            "      (PESSOA_CONTATO.PESSOA_ID = " + PESSOA_ID + "  OR " + PESSOA_ID + " = '') AND " +
                            "      (PESSOA_CONTATO.PSC_TELEFONE_TIPO = " + PSC_TELEFONE_TIPO + "  OR " + PSC_TELEFONE_TIPO + " = '') AND " +
                            "      (PESSOA_CONTATO.PSC_TELEFONE = " + PSC_TELEFONE + "  OR " + PSC_TELEFONE + " = '') ";

            List<ES_Pessoa_contato> lista = new List<ES_Pessoa_contato>();
            SqlConnection sqlConexao = new SqlConnection(conectionString);
            SqlDataReader dr = sqlServer.retornaDataReader(sql, conectionString, sqlConexao);
            try
            {
                while (dr.Read())
                {
                    ES_Pessoa_contato item = new ES_Pessoa_contato();
                    item.PESSOA_CONTATO_ID = dr["PESSOA_CONTATO_ID"].ToString();
                    item.PESSOA_ID = dr["PESSOA_ID"].ToString();
                    item.PSC_TELEFONE_TIPO = dr["PSC_TELEFONE_TIPO"].ToString();
                    item.PSC_TELEFONE = dr["PSC_TELEFONE"].ToString();
                    lista.Add(item);

                }
                return lista;
            }
            finally
            {
                sqlServer.fecharConexao(sqlConexao);
            }
        }


        public ES_Pessoa_contato _obter_Pessoa_contato_by_id(
                                                string PESSOA_CONTATO_ID
                                                )
        {

            if (string.IsNullOrEmpty(PESSOA_CONTATO_ID)) PESSOA_CONTATO_ID = "'0'";

            string sql = "SELECT " +
                                  "PESSOA_CONTATO.PESSOA_CONTATO_ID, " +
                                  "PESSOA_CONTATO.PESSOA_ID, " +
                                  "PESSOA_CONTATO.PSC_TELEFONE_TIPO, " +
                                  "PESSOA_CONTATO.PSC_TELEFONE " +
                            "FROM PESSOA_CONTATO " +
                            "LEFT JOIN PESSOA ON PESSOA.PESSOA_ID = PESSOA_CONTATO.PESSOA_ID " +
                            "WHERE " +
                            "      (PESSOA_CONTATO.PESSOA_CONTATO_ID = " + PESSOA_CONTATO_ID + "  OR " + PESSOA_CONTATO_ID + " = '0') ";

            ES_Pessoa_contato item = new ES_Pessoa_contato();
            SqlConnection sqlConexao = new SqlConnection(conectionString);
            SqlDataReader dr = sqlServer.retornaDataReader(sql, conectionString, sqlConexao);
            try
            {
                while (dr.Read())
                {
                    item.PESSOA_CONTATO_ID = dr["PESSOA_CONTATO_ID"].ToString();
                    item.PESSOA_ID = dr["PESSOA_ID"].ToString();
                    item.PSC_TELEFONE_TIPO = dr["PSC_TELEFONE_TIPO"].ToString();
                    item.PSC_TELEFONE = dr["PSC_TELEFONE"].ToString();

                }
                return item;
            }
            finally
            {
                sqlServer.fecharConexao(sqlConexao);
            }
        }

        public void SP_INSERIR_PESSOA_CONTATO(
                                                string PESSOA_ID,                                                
                                                string PSC_TELEFONE_R,
	                                            string PSC_TELEFONE_M,
	                                            string PSC_TELEFONE_C
                                                )
        {            
            try
            {

                string sql = "EXECUTE [dbo].[SP_GRAVAR_PESSOA_CONTATO] " +
                                                    PESSOA_ID + ", " +
                                                    Util.retonarAspas(PSC_TELEFONE_R, true) + ", " +
                                                    Util.retonarAspas(PSC_TELEFONE_M, true) + ", " +
                                                    Util.retonarAspas(PSC_TELEFONE_C, true);
                sqlServer._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
                               
            }
            catch (Exception e)
            {
                
            }
        }

        public void _inserir_Pessoa_contato(
                                                string PESSOA_CONTATO_ID,
                                                string PESSOA_ID,
                                                string PSC_TELEFONE_TIPO,
                                                string PSC_TELEFONE
                                                )
        {

            string sql = " INSERT INTO PESSOA_CONTATO " +
                         "      ( " +
                         "          PESSOA_ID, " +
                         "          PSC_TELEFONE_TIPO, " +
                         "          PSC_TELEFONE  " +
                 "      )" +
                 "  VALUES " +
                 "      ( " +
                              Util.retonarAspas(PESSOA_ID, true) + ", " +
                              Util.retonarAspas(PSC_TELEFONE_TIPO, true) + ", " +
                              Util.retonarAspas(PSC_TELEFONE, true) +
                 "      )";
            try
            {
                sqlServer._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        public void _atualizar_Pessoa_contato(
                                                string PESSOA_CONTATO_ID,
                                                string PESSOA_ID,
                                                string PSC_TELEFONE_TIPO,
                                                string PSC_TELEFONE
                                                )
        {

            string sql = " UPDATE PESSOA_CONTATO SET " +
                         "      PESSOA_ID = " + Util.retonarAspas(PESSOA_ID, true) + ", " +
                         "      PSC_TELEFONE_TIPO = " + Util.retonarAspas(PSC_TELEFONE_TIPO, true) + ", " +
                         "      PSC_TELEFONE = " + Util.retonarAspas(PSC_TELEFONE, true) +
                         " WHERE PESSOA_CONTATO_ID =  " + PESSOA_CONTATO_ID;
            try
            {
                sqlServer._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        public void _excluir_Pessoa_contato(string PESSOA_CONTATO_ID)
        {
            string sql = "DELETE FROM PESSOA_CONTATO WHERE PESSOA_CONTATO_ID = " + PESSOA_CONTATO_ID;
            try
            {
                sqlServer._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        #endregion
    }
}
